package com.ldu.houserent.common.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexUtil {
    /**
     * 判断手机号格式
     */
    public static boolean isMobile(String phone) {
        String regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
        //  1、模式对象：将给定的正则表达式编译成一个模式
        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);           //compile(String regex, int flags) 返回一个 Pattern 对象，Pattern.CASE_INSENSITIVE表示忽略大小写
        //	2、匹配对象：创建匹配器，将给定的输入与模式进行匹配
        Matcher m = p.matcher(phone);
        //  3、返回匹配结果，true或false
        return m.matches();
    }

    /**
     * 判断电子邮箱格式
     */
    public static boolean isEmail(String email) {
        boolean isMatch = true;
        if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) {
            isMatch = false;
        }
        return isMatch;
    }

    /**
     * 判断身份证号格式
     */
    public static boolean isIdcard(String idcard) {
        String regex = "^[1-9]\\d{5}(18|19|20|(3\\d))\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$";
        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(idcard);
        return m.matches();
    }
}
